home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / w3mman < prev    next >
Text File  |  2009-06-30  |  1KB  |  47 lines

  1. #!/usr/bin/perl
  2.  
  3. @W3M = split(' ', $ENV{'W3MMAN_W3M'} || 'w3m');
  4. $ENV{'W3MMAN_MAN'} ||= '/usr/bin/man';
  5. $SCRIPT = 'file:///$LIB/w3mman2html.cgi';
  6.  
  7. sub usage {
  8.   ($_ = $0) =~ s@.*/@@;
  9.   print STDERR "$_ [-M <path>] [[<section>] <command>]\n";
  10.   print STDERR "$_ [-M <path>] [-k <keyword>]\n";
  11.   print STDERR "$_ [-l <file>]\n";
  12.   exit 1;
  13. }
  14.  
  15. $query = "";
  16. while (@ARGV) {
  17.   $_ = shift @ARGV;
  18.   if (/^-M$/) {
  19.     @ARGV || &usage();
  20.     $ENV{'MANPATH'} = shift @ARGV;
  21.   } elsif (/^-k$/) {
  22.     @ARGV || &usage();
  23.     $query = "?keyword=" . &form_encode(shift @ARGV);
  24.   } elsif (/^-l$/) {
  25.     @ARGV || &usage(); 
  26.     $query = "?quit=ok&local=" . &form_encode(shift @ARGV);
  27.     $query .= "&pwd=" . &form_encode($ENV{'PWD'});
  28.   } elsif (/^-/) {
  29.     &usage();
  30.   } elsif (/^\d/ || $_ eq 'n') {
  31.     @ARGV || &usage();
  32.     $query = "?quit=ok&man=" . &form_encode(shift @ARGV);
  33.     $query .= "§ion=" . &form_encode($_);
  34.   } else {
  35.     $query = "?quit=ok&man=" . &form_encode($_);
  36.   }
  37. }
  38.  
  39. exec @W3M, "$SCRIPT$query";
  40.  
  41. sub form_encode {
  42.   local($_) = @_;
  43.   s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
  44.   return $_;
  45. }
  46.  
  47.